#ifndef __LCD_H
#define __LCD_H		

#include "typedef.h"

#define TEMP_LOCAL_X 49
#define TEMP_LOCAL_Y 100

#define HUM_LOCAL_X 214
#define HUM_LOCAL_Y 100

#define LINE_W 3

#define FLASH_START 0
#define GBK_START 4560UL
#define GBK_LEN 72
#define IMG_START 1746384
#define IMG_LEN 153600

#define ASCII_X_S 12


/******************************************************************************
      函数说明：在指定区域填充颜色
      入口数据：xsta,ysta   起始坐标
                xend,yend   终止坐标
								color       要填充的颜色
      返回值：  无
******************************************************************************/
void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color);//指定区域填充颜色

void LCD_Clear(u16 color);

/******************************************************************************
      函数说明：在指定位置画点
      入口数据：x,y 画点坐标
                color 点的颜色
      返回值：  无
******************************************************************************/
void LCD_DrawPoint(u16 x,u16 y,u16 color);//在指定位置画一个点

/******************************************************************************
      函数说明：画线
      入口数据：x1,y1   起始坐标
                x2,y2   终止坐标
                color   线的颜色
      返回值：  无
******************************************************************************/
void LCD_DrawLine(u16 x1,u16 y1,u16 x2,u16 y2,u16 color);//在指定位置画一条线

/******************************************************************************
      函数说明：画矩形
      入口数据：x1,y1   起始坐标
                x2,y2   终止坐标
                color   矩形的颜色
      返回值：  无
******************************************************************************/
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2,u16 color);//在指定位置画一个矩形

/******************************************************************************
      函数说明：画圆
      入口数据：x0,y0   圆心坐标
                r       半径
                color   圆的颜色
      返回值：  无
******************************************************************************/
void Draw_Circle(u16 x0,u16 y0,u8 r,u16 color);//在指定位置画一个圆

/******************************************************************************
      函数说明：显示单个字符
      入口数据：x,y显示坐标
                num 要显示的字符
                fc 字的颜色
                bc 字的背景色
                sizey 字号
                mode:  0非叠加模式  1叠加模式
      返回值：  无
******************************************************************************/
void LCD_ShowChar(u16 x,u16 y,u8 num,u16 fc,u16 bc,u8 sizey,u8 mode);


/******************************************************************************
      函数说明：显示字符串
      入口数据：x,y显示坐标
                *p 要显示的字符串
                fc 字的颜色
                bc 字的背景色
                sizey 字号
                mode:  0非叠加模式  1叠加模式
      返回值：  无
******************************************************************************/
void LCD_ShowString(u16 x,u16 y,const u8 *p,u16 fc,u16 bc,u8 sizey,u8 mode);


/******************************************************************************
      函数说明：显示整数变量
      入口数据：x,y显示坐标
                num 要显示整数变量
                len 要显示的位数
                fc 字的颜色
                bc 字的背景色
      返回值：  无
******************************************************************************/
void LCD_ShowIntNum(u16 x,u16 y,u16 num,u8 len,u16 fc,u16 bc);


/******************************************************************************
      函数说明：显示两位小数变量
      入口数据：x,y显示坐标
                num 要显示小数变量
                len 要显示的位数
                fc 字的颜色
                bc 字的背景色
                sizey 字号
      返回值：  无
******************************************************************************/
void LCD_ShowFloatNum1(u16 x,u16 y,float num,u8 len,u16 fc,u16 bc,u8 sizey);

void LCD_ShowIntNumWithZeroLeft(u16 x,u16 y,u16 num,u8 len,u16 fc,u16 bc);

/******************************************************************************
	  函数说明：显示图片
	  入口数据：x,y起点坐标
				length 图片长度
				width  图片宽度
				pic[]  图片数组
	  返回值：  无
******************************************************************************/
void LCD_ShowPicture(u16 x,u16 y,u16 length,u16 width,const u8 pic[]);

/* 显示一张图片 */
void LCD_ShowPic(unsigned char n);

void LCD_ShowGBK(unsigned int x, unsigned int y, unsigned char* gbk, u16 fc,u16 bc);

/*********************************************/
/* 函数功能：x轴方向居中显示字符串（中文和英文)       */
/* 入口参数: y:y坐标                               */
/*          *p:字符串                             */
/*          fc:字符颜色                           */
/*          bc:背景颜色                           */
/*********************************************/
void LCD_ShowStrMidx(unsigned int y, unsigned char *p, u16 fc,u16 bc);


/*********************************************/
/* 函数功能：显示字符串（中文和英文）        */
/* 入口参数：x,y: 坐标                     */
/*          *p:字符串                     */
/*          fc:字符颜色                     */
/*          bc:背景颜色                     */
/*********************************************/
void LCD_ShowStr(unsigned int x, unsigned int y, unsigned char *p, u16 fc,u16 bc);


/* 显示一张图片 */
void LCD_ShowPic(unsigned char n);

/* 液晶屏显示12*24像素的英文Ascii码 */
void LCD_ShowAsc1224(unsigned int x, unsigned int y, unsigned char asc, u16 fc, u16 bc);

/* 液晶屏显示16*24像素的英文Ascii码 */
void LCD_ShowAsc1624(unsigned int x, unsigned int y, unsigned char num, u16 fc, u16 bc);


/* 液晶屏显示24*24像素的GBK字符 */
void LCD_ShowGBK24(unsigned int x, unsigned int y, unsigned char *gbk, u16 fc,u16 bc);



//画笔颜色
#define WHITE         	 0xFFFF
#define BLACK         	 0x0000	  
#define BLUE           	 0x001F  
#define BRED             0XF81F
#define GRED 			 0XFFE0
#define GBLUE			 0X07FF
#define RED           	 0xF800
#define MAGENTA       	 0xF81F
#define GREEN         	 0x07E0
#define CYAN          	 0x7FFF
#define YELLOW        	 0xFFE0
#define BROWN 			 0XBC40 //棕色
#define BRRED 			 0XFC07 //棕红色
#define GRAY  			 0X8430 //灰色
#define DARKBLUE      	 0X01CF	//深蓝色
#define LIGHTBLUE      	 0X7D7C	//浅蓝色  
#define GRAYBLUE       	 0X5458 //灰蓝色
#define LIGHTGREEN     	 0X841F //浅绿色
#define LGRAY 			 0XC618 //浅灰色(PANNEL),窗体背景色
#define LGRAYBLUE        0XA651 //浅灰蓝色(中间层颜色)
#define LBBLUE           0X2B12 //浅棕蓝色(选择条目的反色)

#endif





